草庐IT

Java BufferedImage 内存消耗

全部标签

c++ - 如何使用 CMake 测试 C++ 应用程序没有内存错误?

我在CMake中有一个C++项目,我已经实现了单元测试(使用GoogleTest)以及集成测试,即执行应用程序并使用正则表达式检查结果,例如add_test(NAMEMyAppIntegration.testRefitRunMseCOMMANDmy_application"--refit=true")set_tests_properties(MyAppIntegration.testRefitRunMsePROPERTIESPASS_REGULAR_EXPRESSION"mse\\=1\\.53611e\\-05")现在我想做与上面相同的事情,但运行应用程序来检测内存错误,例如只需运行

c++ - 没有页面文件的 Windows XP 内存管理 - 后果是什么。堆碎片?

我一直在研究我们在WindowsXP嵌入式系统上的应用程序中看到的一个相当难以捉摸的错误。我们已将错误缩小到一个指针,该指针应指向一block内存,而不是指向NULL。由于内存是通过调用未检查的malloc(..)分配的,我的直觉告诉我malloc失败并返回NULL(尽管我们现在也在寻找其他可能性,例如可能无意中改变的竞争条件指针)。这是nativeC++应用程序。为了追查这个原因,崩溃有点令人费解,主要是因为我们只有事后崩溃转储,并且故障出现在我们没有源代码的第三方库中,在不同的线程上。欢乐时光:)我的问题集中在内存耗尽的可能性上。重要的是我们运行的XPEmbedded系统禁用了它的

c++ - 从 std::vector 接管内存

我使用一个处理大量数据的外部库。数据由原始指针加上长度传入。该库不声明指针的所有权,但会在处理完数据后调用提供的回调函数(具有相同的两个参数)。使用std::vector可以方便地准备数据,我宁愿不放弃这种便利。复制数据是完全不可能的。因此,我需要一种方法来“接管”std::vector拥有的内存缓冲区。,并(稍后)在回调中取消分配它。我目前的解决方案如下所示:std::vectorinput=prepare_input();T*data=input.data();size_tsize=input.size();//movethevectorto"raw"storage,topreve

一文读懂从 CPU 多级缓存 & 缓存一致性协议(MESI)到 Java 内存模型

文章目录CPU多级缓存&缓存一致性协议(MESI)CPU多级缓存缓存一致性协议(MESI)缓存行(Cacheline)四种缓存状态缓存行状态转换多核协同示例网站体验MESI优化和引入的问题StoreBufferes&InvalidateQueueStoreBufferes&InvalidateQueue带来的问题硬件内存模型读屏障&写屏障思考&联系CPU多级缓存&缓存一致性协议(MESI)CPU多级缓存参考:JavaMemoryModel缓存一致性协议(MESI)多级缓存的出现解决了CPU处理速度和内存读取速度不一致的问题,但是同时也带来缓存不一致的问题,为了解决这个问题,我们引入了缓存一致性

c++ - 通过指向非多态类型的基类的指针获取已分配内存的地址

简单的多重继承structA{};structB{};structC:A,B{};或虚拟继承structB{};structC:virtualB{};请注意类型不是多态的。自定义内存分配:templateT*custom_new(Args&&args...){void*ptr=custom_malloc(sizeof(T));returnnew(ptr)T(std::forward(args)...);}templatevoidcustom_delete(T*obj){if(!obj)returnobj;void*ptr=get_allocated_ptr(obj);//hereass

lesson4-C++内存管理

个人主页:Lei宝啊 愿所有美好如期而遇目录C/C++内存分布C语言中动态内存管理方式C++中动态内存管理operatornew与operatordelete函数new和delete的实现原理定位new表达式(placement-new)常见面试题C/C++内存分布我们先来看一段代码:intglobalVar=1;staticintstaticGlobalVar=1;voidTest(){ staticintstaticVar=1; intlocalVar=1; intnum1[10]={1,2,3,4}; charchar2[]="abcd"; constchar*pChar3="abcd"

c++ - 通过指向常量的指针释放内存是一种好习惯吗

有很多问题讨论了C和C++处理常量指针删除的细节,即free()不接受它们,delete和delete[]执行并且常量性不会阻止对象销毁。我感兴趣的是您是否认为这样做是一种好的做法,而不是语言(C和C++)所允许的。删除常量指针的参数包括:LinusTorvalds的kfree()与C的free()不同,它采用voidconst*参数,因为他认为释放内存不影响指向的内容。free()是在引入const关键字之前设计的。C++的删除运算符允许删除常量数据。反对它的论点包括:程序员不希望在向数据传递指向常量的指针时修改(或删除)数据。许多人认为指向const的指针意味着不获得数据的所有权(

c++ - istream 与内存映射文件?

我正在尝试将文件映射到内存,然后逐行解析-istream是我应该使用的吗?在Windows上istream和映射一个文件到内存是一样的吗?我很难找到将文件映射到内存的完整示例。我看到有人链接了来自MSDN的内存映射文章,但如果有人可以推荐一个小的(~15行?)示例,我将不胜感激。我一定是在搜索错误的东西,但是在Google上搜索“C++内存映射示例”时,我找不到包含迭代的示例。这些是最接近的结果(只是为了让人们意识到我已经看过):http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2044.html#ClassSharedM

c++ - 以编程方式获取 GPU 内存使用情况

我正在寻找一种可靠的方法来确定当前GPU内存使用情况,最好是在C++/C中。我发现了很多获取用法的方法,例如以下方法:直接抽签Dx诊断WMIDXGID3D9这些方法不够准确(大多数相差一百兆字节)。我试过nvapi.h但我没有看到任何可以用来查询内存的东西。我当时认为只有上面列出的方法是唯一的选择,但后来我遇到了一个名为GPU-Z的工具,即使OpenCL在我的580GTX上几乎满载运行,它也能为我提供精确到兆字节的准确内存读数.我可以通过在OpenCL返回Object_Allocationfail返回代码之前再分配几兆字节来验证我是否处于内存使用的高峰期。查看从GPU-Z导入的内容,除

c++ - 检测内存泄漏的工具

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭8年前。Improvethisquestion内存泄漏检测工具(如purify和valgrind)如何工作?我如何设计和实现我自己的此类工具?